Tisk v threadu
Otázka od: Ludek ZITA
2. 12. 2002 18:55
Zdravim.
Mam dotaz, lze principielne tisknout v threadu ?
Pisu takovou sluzbu pro NT, ke ktere pristupuji terminaly po TCP/IP. Sluzba
provadi operace s databazi a proto je vse napsano v threadu, ktery se
startuje pro kazdy terminla zvlast. Potrebuji i tisknout. Udelal jsem si
tedy datamodul s datovym zdrojem, sestavami Sinea a
ten volam nejak takto :
with TPrnModule.Create(CL8100service) do
try
//nejaka inicializace promennych SQL dotazu nazev sestavy
PrintDoklad(Sestava, PrnIndex);
finally
free;
end;
Pokud tiskne jen jeden terminal je vse OK, pokud se ale "sejdou" vyhuci to
na exception.
(Access violation at address 00000000. Read of address 00000000.)
Lze vubec v threadu (vicenasobne) tisknout nebo mam hledat v chybu v Sinee
nebo snad v pouziti datamodulu ?
Predem diky za vsechny rady.
Ludek
Odpovedá: Vaclav Krmela
2. 12. 2002 19:22
> From: Ludek ZITA
>
> Lze vubec v threadu (vicenasobne) tisknout nebo mam hledat
> chybu v Sinee nebo snad v pouziti datamodulu ?
Generator sestav Sinea neni psan pro takovyto zpusob pouziti.
Sinea beznym zpusobem pouziva VCL komponenty
a pro zobrazovani nepouziva metodu Synchronize.
To by se muselo ze Siney vypreparovat tiskove jadro
a odstranit z neho vsechny vnejsi projevy.
O jakou verzi Siney se jedna?
Ve verzi X.40.26 byly delany nektere upravy,
ale myslim, ze na tento zpusob pouziti
to nebude stacit.
Vaclav Krmela
Odpovedá: Ludek ZITA
3. 12. 2002 1:52
> > Lze vubec v threadu (vicenasobne) tisknout nebo mam hledat
> > chybu v Sinee nebo snad v pouziti datamodulu ?
>
> Generator sestav Sinea neni psan pro takovyto zpusob pouziti.
> Sinea beznym zpusobem pouziva VCL komponenty
> a pro zobrazovani nepouziva metodu Synchronize.
Toho jsem se obaval, ale tise jsem doufal, ze pokud jen tisknu nevytvari se
nic vizualniho a nebude tedy problem.
Zkusim to obejit tim, ze nebudu tisk zpoustet v threadu procesu jednotliveho
terminalu, ale udelam jeden tiskovy thread, ktery bude tisknout ulohy
postupne z fronty. Stejne se na tiskarnu nedaji tisknout dva dokumenty
najednou
Ludek
Odpovedá: Petr Vones
3. 12. 2002 21:18
From: "Ludek ZITA" <konference@sales.cz>
> Toho jsem se obaval, ale tise jsem doufal, ze pokud jen tisknu nevytvari se
> nic vizualniho a nebude tedy problem.
Pokud se nevytvari ani behem tisku nemanipuluje s vizualnimi komponentami tak
by to fungovat v threadu melo. Mozna by bylo dobre se podivat kde ten problem
vznika, muze to totiz indikovat i nejakou dalsi ukrytou chybu apod.
> Zkusim to obejit tim, ze nebudu tisk zpoustet v threadu procesu jednotliveho
> terminalu, ale udelam jeden tiskovy thread, ktery bude tisknout ulohy
> postupne z fronty. Stejne se na tiskarnu nedaji tisknout dva dokumenty
> najednou
Tiskovou frontu uz maji prece primo Windows.
Petr Vones